<html>
<head><meta charset="utf-8"><title>Chalk upgrade failing on rustc due to oom · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html">Chalk upgrade failing on rustc due to oom</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="200773933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/200773933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#200773933">(Jun 13 2020 at 16:27)</a>:</h4>
<p>The PR (<a href="https://github.com/rust-lang/rust/pull/72936#issuecomment-643642823">https://github.com/rust-lang/rust/pull/72936#issuecomment-643642823</a>) to upgrade chalk has failed due to OOM issues (cc <span class="user-mention" data-user-id="232957">@Jack Huey</span> )</p>



<a name="200775338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/200775338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#200775338">(Jun 13 2020 at 16:59)</a>:</h4>
<p>I was previously getting an OOM with <code>parallel-compiler = true</code></p>



<a name="200775340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/200775340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#200775340">(Jun 13 2020 at 16:59)</a>:</h4>
<p>in the first Chalk integration PR</p>



<a name="200775396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/200775396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#200775396">(Jun 13 2020 at 17:00)</a>:</h4>
<p>This was the repro for that <a href="https://github.com/jackh726/rust/commit/79ed869cc697d4a41ae52e717522e5673fc1ba8a">https://github.com/jackh726/rust/commit/79ed869cc697d4a41ae52e717522e5673fc1ba8a</a></p>



<a name="200775400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/200775400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#200775400">(Jun 13 2020 at 17:00)</a>:</h4>
<p>I imagine they are probably related</p>



<a name="201186846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201186846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201186846">(Jun 17 2020 at 19:07)</a>:</h4>
<p>I've opened <a href="https://github.com/rust-lang/rust/issues/73452">#73452</a> to fix the oom when adding Chalk types to the interner.</p>



<a name="201187331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201187331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201187331">(Jun 17 2020 at 19:11)</a>:</h4>
<p><span aria-label="hearts" class="emoji emoji-2665" role="img" title="hearts">:hearts:</span></p>



<a name="201187415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201187415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201187415">(Jun 17 2020 at 19:12)</a>:</h4>
<p>This isn't the same problem as the rustdoc one?</p>



<a name="201187607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201187607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201187607">(Jun 17 2020 at 19:14)</a>:</h4>
<p>Maybe this fixes the doc issue as well. It's probably a similar issue.</p>



<a name="201187803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201187803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201187803">(Jun 17 2020 at 19:16)</a>:</h4>
<p>Can you try the test <span class="user-mention" data-user-id="125294">@Aaron Hill</span> has in their PR? <a href="https://github.com/rust-lang/rust/pull/73335/files#diff-8b057ddb827ab1e1035fcc1625d2f67e">https://github.com/rust-lang/rust/pull/73335/files#diff-8b057ddb827ab1e1035fcc1625d2f67e</a></p>



<a name="201187971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201187971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201187971">(Jun 17 2020 at 19:17)</a>:</h4>
<p>that probably will fix the rustdoc issue</p>



<a name="201188052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201188052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201188052">(Jun 17 2020 at 19:18)</a>:</h4>
<p>since the underlying issue was reproducible in rustc, and was caused by an overflow when evaluating auto-trait predicates</p>



<a name="201188107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201188107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201188107">(Jun 17 2020 at 19:19)</a>:</h4>
<p>the OOM was caused by new un-unified type variables getting created in each loop iteration</p>



<a name="201188314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201188314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201188314">(Jun 17 2020 at 19:21)</a>:</h4>
<p>/me builds rustdoc...</p>



<a name="201189742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201189742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201189742">(Jun 17 2020 at 19:34)</a>:</h4>
<p>Also while making sure that adding chalk types to the interners actually works I ran into issues where some things don't implement <code>Copy</code> which can. Should I open a PR to add those impls?</p>



<a name="201189803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201189803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201189803">(Jun 17 2020 at 19:35)</a>:</h4>
<p>Also having to return references to things from <code>Interner</code> is annoying.</p>



<a name="201190052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201190052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201190052">(Jun 17 2020 at 19:37)</a>:</h4>
<p>What needs to be <code>Copy</code> that isn't?</p>



<a name="201190217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201190217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201190217">(Jun 17 2020 at 19:38)</a>:</h4>
<p>And do you meant the reference here? <code>fn ty_data&lt;'a&gt;(&amp;self, ty: &amp;'a Self::InternedType) -&gt; &amp;'a TyData&lt;Self&gt;</code></p>



<a name="201190292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201190292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201190292">(Jun 17 2020 at 19:39)</a>:</h4>
<p>I really mean the one here:</p>
<div class="codehilite"><pre><span></span><code><span class="k">fn</span> <span class="nf">generic_arg_data</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="p">(</span><span class="w"></span>
<span class="w">        </span><span class="o">&amp;</span><span class="bp">self</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="n">lifetime</span>: <span class="kp">&amp;</span><span class="na">&#39;a</span><span class="w"> </span><span class="bp">Self</span>::<span class="n">InternedGenericArg</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kp">&amp;</span><span class="na">&#39;a</span><span class="w"> </span><span class="n">GenericArgData</span><span class="o">&lt;</span><span class="bp">Self</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
</code></pre></div>



<a name="201190413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201190413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201190413">(Jun 17 2020 at 19:40)</a>:</h4>
<p>Why is that a problem?</p>



<a name="201190520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201190520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201190520">(Jun 17 2020 at 19:41)</a>:</h4>
<p>This is the current definition of <code>GenericArg</code> in rustc:</p>
<div class="codehilite"><pre><span></span><code><span class="k">pub</span><span class="w"> </span><span class="k">struct</span> <span class="nc">GenericArg</span><span class="o">&lt;</span><span class="na">&#39;tcx</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">ptr</span>: <span class="nc">NonZeroUsize</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="n">marker</span>: <span class="nc">PhantomData</span><span class="o">&lt;</span><span class="p">(</span><span class="n">Ty</span><span class="o">&lt;</span><span class="na">&#39;tcx</span><span class="o">&gt;</span><span class="p">,</span><span class="w"> </span><span class="n">ty</span>::<span class="n">Region</span><span class="o">&lt;</span><span class="na">&#39;tcx</span><span class="o">&gt;</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="na">&#39;tcx</span><span class="w"> </span><span class="n">ty</span>::<span class="n">Const</span><span class="o">&lt;</span><span class="na">&#39;tcx</span><span class="o">&gt;</span><span class="p">)</span><span class="o">&gt;</span><span class="p">,</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>It's not an interned reference to an enum.</p>



<a name="201190623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201190623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201190623">(Jun 17 2020 at 19:42)</a>:</h4>
<p>It's fine for experimenting, but I don't think that rustc wants another layer of indirection in the long term.</p>



<a name="201190815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201190815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201190815">(Jun 17 2020 at 19:44)</a>:</h4>
<p>So, the <code>InternedGenericArg</code> would be a <code>&amp;'tcx chalk_ir::GenericArgData</code></p>



<a name="201190874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201190874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201190874">(Jun 17 2020 at 19:45)</a>:</h4>
<p>Definitely in the long run, with the shared type library, they will be merged</p>



<a name="201191403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201191403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201191403">(Jun 17 2020 at 19:49)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom/near/201190052">said</a>:</p>
<blockquote>
<p>What needs to be <code>Copy</code> that isn't?</p>
</blockquote>
<p><code>Binder</code> and <code>WhereClause</code></p>



<a name="201191662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201191662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201191662">(Jun 17 2020 at 19:51)</a>:</h4>
<p>Sure</p>



<a name="201191752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201191752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201191752">(Jun 17 2020 at 19:52)</a>:</h4>
<p>For <code>WhereClause</code> to derive <code>Copy</code>, so will <code>TraitRef</code>, <code>AliasEq</code>, and so on</p>



<a name="201191807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201191807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201191807">(Jun 17 2020 at 19:53)</a>:</h4>
<p>looking at it, a lot of types in <code>chalk-ir</code> should probably derive <code>Copy</code> that don't</p>



<a name="201191967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201191967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201191967">(Jun 17 2020 at 19:54)</a>:</h4>
<p>They might need manual impls because derive isn't clever enough, but yes.</p>



<a name="201192133"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201192133" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201192133">(Jun 17 2020 at 19:56)</a>:</h4>
<p>well, they won't always be <code>Copy</code>, only when the interned types are</p>



<a name="201192208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201192208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201192208">(Jun 17 2020 at 19:57)</a>:</h4>
<p>not sure if that's what you mean by derive not being clever</p>



<a name="201192931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201192931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201192931">(Jun 17 2020 at 20:02)</a>:</h4>
<p>For example, the impl <code>impl&lt;I: Interner&gt; Copy for LifetimeOutlives&lt;I&gt; where I::InternedLifetime: Copy {}</code> has to be written by hand because <code>derive</code> won't add the where clause for you.</p>



<a name="201192983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201192983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201192983">(Jun 17 2020 at 20:03)</a>:</h4>
<p>ah right</p>



<a name="201197896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Chalk%20upgrade%20failing%20on%20rustc%20due%20to%20oom/near/201197896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Chalk.20upgrade.20failing.20on.20rustc.20due.20to.20oom.html#201197896">(Jun 17 2020 at 20:43)</a>:</h4>
<p>This PR fixes the rustdoc issue as well.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>